package com.sisSaude.daos;

import java.sql.ResultSet;
import java.util.Vector;

import com.sisSaude.entityBeans.PerguntaDeFichaDeAnamnese;
import com.sisSaude.utils.DataProvider;
import com.sisSaude.utils.SqlFactory;

public class PerguntaDeFichaDeAnamneseDAO extends GenericDAO<PerguntaDeFichaDeAnamnese> {

	// fields
	public static String SELECT_BASICA = " SELECT PerguntaDeFichaDeAnamnese.* " +
			                             " FROM PerguntaDeFichaDeAnamnese " ;
	
	// public methods
	public boolean delete(PerguntaDeFichaDeAnamnese pergunta) {
		String sql = SqlFactory.getSqlDelete("PerguntaDeFichaDeAnamnese", "id");
		DataProvider dataProvider = new DataProvider();
		Vector<Object> params = new Vector<Object>();
		params.add(pergunta.getId());
		try {
			dataProvider.execute(sql, params);
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		} finally {
			dataProvider.close();
		}
		return true;
	}
	public PerguntaDeFichaDeAnamnese get(int id) {
		PerguntaDeFichaDeAnamnese pergunta = null;
		String sql = SELECT_BASICA + " WHERE PerguntaDeFichaDeAnamnese.id = ? "; 
		DataProvider dataProvider = new DataProvider();
		Vector<Object> params = new Vector<Object>();
		params.add(id);
		try {
			dataProvider.select(sql, params);
			if (dataProvider.next()) {
				pergunta = new PerguntaDeFichaDeAnamnese();
				loadAttribs(pergunta, dataProvider.getResultSet());
			}
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		} finally {
			dataProvider.close();
		}
		return pergunta;
	}
	public void loadAttribs(PerguntaDeFichaDeAnamnese pergunta, ResultSet r) {
		try {
			pergunta.setId(r.getInt("id"));
			pergunta.setDescricao(r.getString("descricao"));
			pergunta.setOrdem(r.getInt("ordem"));
			pergunta.setAtivo(r.getBoolean("ativo"));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	// protected methods
	protected boolean insert(PerguntaDeFichaDeAnamnese pergunta) {
		String sql = SqlFactory.getSqlInsert("PerguntaDeFichaDeAnamnese");
		DataProvider dataProvider = new DataProvider();
		Vector<Object> params = new Vector<Object>();
		params.add(pergunta.getId());
		params.add(pergunta.getDescricao());
	 	params.add(pergunta.getOrdem());
	 	params.add(pergunta.isAtivo());
	 	try {
			pergunta.setId(dataProvider.insert(sql, params));
			return pergunta.getId() > 0;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		} finally {
			dataProvider.close();
		}
	}
	protected boolean update(PerguntaDeFichaDeAnamnese pergunta) {
		String sql = SqlFactory.getSqlUpdate("PerguntaDeFichaDeAnamnese", "PerguntaDeFichaDeAnamnese.id");
		DataProvider dataProvider = new DataProvider();
		Vector<Object> params = new Vector<Object>();
		params.add(pergunta.getDescricao());
	 	params.add(pergunta.getOrdem());
	 	params.add(pergunta.isAtivo());
		params.add(pergunta.getId());
		try {
			dataProvider.execute(sql, params);
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		} finally {
			dataProvider.close();
		}
		return true;
	}
}
